package com.ct.service;

import java.util.List;

import com.ct.entity.po.ReimbursementApprovalMa;
import com.ct.entity.query.ReimbursementApprovalMaQuery;
import com.ct.entity.vo.PaginationResultVO;
import com.ct.entity.vo.ReimbursementVO;

/**
 * 经理审批报销申请记录 业务接口
 */
public interface ReimbursementApprovalMaService {

    /**
     * 根据条件查询列表
     */
    List<ReimbursementApprovalMa> findListByParam(ReimbursementApprovalMaQuery param);

    /**
     * 根据条件查询列表
     */
    Integer findCountByParam(ReimbursementApprovalMaQuery param);

    /**
     * 分页查询
     */
    PaginationResultVO<ReimbursementApprovalMa> findListByPage(ReimbursementApprovalMaQuery param);

    /**
     * 新增
     */
    Integer add(ReimbursementApprovalMa bean);

    /**
     * 批量新增
     */
    Integer addBatch(List<ReimbursementApprovalMa> listBean);

    /**
     * 批量新增/修改
     */
    Integer addOrUpdateBatch(List<ReimbursementApprovalMa> listBean);

    /**
     * 多条件更新
     */
    Integer updateByParam(ReimbursementApprovalMa bean, ReimbursementApprovalMaQuery param);

    /**
     * 多条件删除
     */
    Integer deleteByParam(ReimbursementApprovalMaQuery param);

    /**
     * 根据ReimbursementApprovalMaId查询对象
     */
    ReimbursementApprovalMa getReimbursementApprovalMaByReimbursementApprovalMaId(Integer reimbursementApprovalMaId);

    /**
     * 根据ReimbursementApprovalMaId修改
     */
    Integer updateReimbursementApprovalMaByReimbursementApprovalMaId(ReimbursementApprovalMa bean,
            Integer reimbursementApprovalMaId);

    /**
     * 根据ReimbursementApprovalMaId删除
     */
    Integer deleteReimbursementApprovalMaByReimbursementApprovalMaId(Integer reimbursementApprovalMaId);

    /**
     * 分页查询经理审批的报销记录
     * 
     * @param userId   经理工号
     * @param pageNo   页码
     * @param pageSize 页大小
     * @return 分页结果
     */
    PaginationResultVO<ReimbursementVO> getApproveReimbursementRecordMa(String userId, Integer pageNo,
            Integer pageSize);

    ReimbursementApprovalMa getReimbursementApprovalMaByReimbursementId(Integer reimbursementId);

}